home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip: Special XP & Vista
/
Chip Spesial XP & Vista.iso
/
3_Gadgets
/
gdAmp
/
gdamp.gg
/
main.js
< prev
next >
Wrap
Text File
|
2007-08-14
|
7KB
|
368 lines
/* gdAmp - Copyright (c) Aug 2007 Krzysztof Olczyk */
var dtbLbl = null;
var winamp = null;
var ps = 0;
var dur = 0;
var pos = 0;
var songind = 0;
var songtitle = "";
var remtime = false;
var showst = true;
function formattime(tm)
{
return Math.floor(tm / 60) + ':' + ((tm % 60) < 10 ? '0' : '') + (tm % 60)
}
function formattitle()
{
return (songind + 1) + ". " + songtitle + " (" + formattime(dur) + ")";
}
var upd_timeout = 500;
var pir = false;
function updateview()
{
songind = winamp.PlaylistIndex;
songtitle = winamp.GetTitleAt(songind);
if (winamp.PlayingStatus != ps && winamp.PlayingStatus == 1)
{
popupNewTrack();
}
ps = winamp.PlayingStatus;
dur = winamp.Duration;
pos = winamp.Position;
sb.value = winamp.Volume;
var newtitl;
if (winamp.isRunning)
newtitl = formattitle();
else
newtitl = NOTRUNNING;
if (dtbLbl.innerText != newtitl)
{
dtbLbl.innerText = newtitl;
resetAnimTitle();
animateTitle();
if (winamp.isRunning && ps == 1)
popupNewTrack();
}
btn1.src = (ps == 1 ? 'images\\media-playback-pause.png' : 'images\\media-playback-start.png');
btn1.tooltip = (ps == 1 ? PAUSE : PLAY);
if (!winamp.isRunning)
{
pbPosition.max = 0;
pbPosition.enabled = true;
setTimeout("updateview()", upd_timeout);
if (!pir)
{
pir = true;
popupWinampClosed();
}
return;
}
pir = false;
if (showst)
{
switch (ps)
{
case 0:
lblStatus.innerText = STOPPED;
break;
case 1:
lblStatus.innerText = PLAYING;
break;
case 3:
lblStatus.innerText = PAUSED;
break;
}
}
else
lblStatus.innerText = "";
if (ps != 0) // if not stopped
{
pbPosition.max = dur;
pbPosition.enabled = true;
pbPosition.value = pos;
if (remtime)
lblTime.innerText = "-" + formattime(dur - pos - 1);
else
lblTime.innerText = formattime(pos);
}
else
{
pbPosition.enabled = false;
pbPosition.max = 0;
lblTime.innerText = '0:00';
}
setTimeout("updateview()", upd_timeout);
}
function view_onOpen()
{
try
{
winamp = new ActiveXObject("Winamp.Controller");
}
catch (e)
{
InstallPlugin();
}
options.putDefaultValue("show_remaining", "false");
remtime = options.getValue("show_remaining") == "true";
options.putDefaultValue("show_status", "true");
showst = options.getValue("show_status") == "true";
dtbLbl = dTitleBar.AppendElement("<label y='3' color='#ff0000' size='9' font='verdana'>" + GADGET_NAME + "</label>");
dtbLbl.tooltip = dTitleBar.tooltip;
updateview();
applycolors();
}
function bmo(i)
{
eval("btn" + i).opacity = 150;
}
function bml(i)
{
eval("btn" + i).opacity = 255;
}
function checkwinamp()
{
if (!winamp.isRunning)
{
if (confirm(WANNARUN))
winamp.Execute();
}
}
function doplay()
{
checkwinamp();
if (winamp.PlayingStatus == 0)
winamp.play();
else if (winamp.PlayingStatus == 3)
winamp.pause();
else
winamp.pause();
}
function dostop()
{
checkwinamp();
winamp.stop();
}
function posclick()
{
checkwinamp();
winamp.position = pbPosition.value;
}
function doopen()
{
checkwinamp();
winamp.BringToFront();
winamp.PopupLoadFile();
}
function doprev()
{
checkwinamp();
winamp.Prev();
}
function donext()
{
checkwinamp();
winamp.Next();
}
function sb_onchange()
{
winamp.Volume = sb.value;
}
function toggle_rem()
{
remtime = !remtime;
options.putValue("show_remaining", remtime ? "true" : "false");
}
function toggle_sst()
{
showst = !showst;
options.putValue("show_status", showst ? "true" : "false");
}
function toggle_visible()
{
winamp.visible = !winamp.visible;
if (!winamp.visible)
{
popupWinampHidden();
}
}
function Colors()
{
this.title = "#ff0000";
this.time = "#000000";
this.status = "#000000";
this.customcolors = "";
}
Colors.prototype.Save = function()
{
options.putValue("color1", this.title);
options.putValue("color2", this.time);
options.putValue("color3", this.status);
options.putValue("colorc", this.customcolors);
}
Colors.prototype.Load = function()
{
if (options.exists("color1"))
this.title = options.getValue("color1");
if (options.exists("color2"))
this.time = options.getValue("color2");
if (options.exists("color3"))
this.status = options.getValue("color3");
if (options.exists("colorc"))
this.customcolors = options.getValue("colorc");
}
function applycolors()
{
var colors = new Colors();
colors.Load();
dtbLbl.color = colors.title;
lblTime.color = colors.time;
lblStatus.color = colors.status;
}
function selcolor(wh)
{
var colors = new Colors();
colors.Load();
var acs = new ActiveColorSelector();
acs.CustomColorsStr = colors.customcolors;
acs.ColorStr = eval("colors." + wh);
if (acs.Show(0))
{
eval("colors." + wh + " = acs.ColorStr;");
}
colors.customcolors = acs.CustomColorsStr;
colors.Save();
applycolors();
acs = null;
}
function pluginHelper.onAddCustomMenuItems(menu)
{
if (winamp.isRunning)
{
menu.AddItem(SHUFFLE, winamp.Shuffle ? gddMenuItemFlagChecked : 0, function () { winamp.Shuffle = !winamp.Shuffle; });
menu.AddItem(REPEAT, winamp.RepeatEnabled ? gddMenuItemFlagChecked : 0, function () { winamp.RepeatEnabled = !winamp.RepeatEnabled; });
var submenu = menu.AddPopup(PLAYBACK);
submenu.AddItem(PREV, 0, doprev);
submenu.AddItem(ps == 1 ? PAUSE : PLAY, 0, doplay);
submenu.AddItem(STOP, 0, dostop);
submenu.AddItem(NEXT, 0, donext);
submenu.AddItem(OPEN, 0, doopen);
menu.AddItem('', 0x800 /* MF_SEPARATOR */, null);
menu.AddItem(SHOWREM, remtime ? gddMenuItemFlagChecked : 0, toggle_rem);
menu.AddItem(SHOWSTAT, showst ? gddMenuItemFlagChecked : 0, toggle_sst);
menu.AddItem(WINAMP_HIDDEN, winamp.visible ? 0 : gddMenuItemFlagChecked, toggle_visible);
menu.AddItem('', 0x800 /* MF_SEPARATOR */, null);
var submenu2 = menu.AddPopup(CONFCOLORS);
submenu2.AddItem(CTITL, 0, function () { selcolor("title"); });
submenu2.AddItem(CTIME, 0, function () { selcolor("time"); });
if (showst)
submenu2.AddItem(CSTATUS, 0, function () { selcolor("status"); });
menu.AddItem(VISITWP, 0, function () { (new ActiveXObject("WScript.Shell")).Run("http://olczyk.krzysztof.googlepages.com"); });
}
else
{
menu.AddItem(RUNWINAMP, 0, function () { winamp.Execute(); });
}
}
function InstallPlugin()
{
var ws = new ActiveXObject("WScript.Shell");
var sh = new ActiveXObject("Shell.Application");
var wp;
try
{
wp = ws.RegRead("HKCU\\Software\\Winamp\\");
}
catch (e)
{
alert(NOWINAMP);
Plugin.RemoveMe(true);
return;
}
alert(INSTALLMSG);
var destobj = sh.NameSpace(wp + "\\Plugins");
if (destobj == null)
{
alert(ERRORINSTALLING);
Plugin.RemoveMe(true);
return;
}
var ef = storage.extract("gen_Winamp.dll");
destobj.CopyHere(ef, 20);
framework.system.filesystem.DeleteFile(ef);
debug.trace(wp + "\\winamp.exe");
ws.Run("\"" + wp + "\\winamp.exe\"");
alert(INSTALLMSG2);
try
{
winamp = new ActiveXObject("Winamp.Controller");
}
catch (e)
{
alert(RRORINSTALLING);
Plugin.RemoveMe(true);
return;
}
// view_onOpen();
}
function view_onClose()
{
winamp.visible = true;
}